﻿using ibba.src.sl.componentes;

namespace ibba.src.noriskbo.code.BarraBotoes
{
    public abstract class VisibilidadeBotoes : IVisibilidadeBotoes
    {

        #region IVisibilidadeBotoes Members

        public abstract void AdicionarComponente(IVisibilidadeBotoes pVisibilidadeBotao);

        public void AlterarVisibilidade(string pStatus, string pUsuario, Enumerador.eAcaoBotao pAcao)
        {
            OcultarTodosBotoes();

            //if (pAcao.Equals(Enumerador.eAcaoTomada.Nenhuma) == false)
            //    BarraBotoes.AlterarVisibilidadeBotao(Constantes.SourceImagem.BOTAO_VOLTAR.ToString(), true);

            if (string.IsNullOrWhiteSpace(pStatus))
                pStatus = "-";
            else
                pStatus = pStatus.Trim();

            AlterarVisibilidadeEspecializado(pStatus, pUsuario, pAcao);
        }

        public void OcultarTodosBotoes()
        {
            if (BarraBotoes != null)
            {
                BarraBotoes.AlterarVisibilidadeBotoes(false);
                BarraBotoes.AlterarVisibilidadeBotao(Constantes.SourceImagem.BOTAO_VOLTAR.ToString(), true);
            }
        }

        #endregion
        
        protected ControlMenuBar BarraBotoes { get; set; }

        public VisibilidadeBotoes(ControlMenuBar pBarraBotoes)
        {
            BarraBotoes = pBarraBotoes;
        }

        protected abstract void AlterarVisibilidadeEspecializado(string pStatus, string pUsuario, Enumerador.eAcaoBotao pAcao);


    }
}